﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace System.Collections
{

    /// <summary>
    /// Represents a collection with ability to provide a paged view
    /// of the contained items.
    /// </summary>
    public interface IPageableCollection : IEnumerable
    {

        /// <summary>
        /// Gets the number of items contained within the collection.
        /// </summary>
        int Count
        {
            get;
        }

        /// <summary>
        /// Gets a subset of the items contained within the collection
        /// that fit into the specified page definition.
        /// </summary>
        /// <param name="pageIndex">The index of the page.</param>
        /// <param name="pageSize">The size of the page.</param>
        /// <returns>A collection of items fitting into the specified page.</returns>
        IEnumerable GetPage(int pageIndex, int pageSize);
    }
}
